#ifndef OBJETOVIVO_H
#define OBJETOVIVO_H


#include "Punto.h"


class ObjetoVivo
    {
    private:

        bool isAlive;
        Punto* punto;
		Punto* puntoAnterior;
		unsigned int radio;
		static int ID_CLASE ;
		int id;

    public:

        ObjetoVivo(Punto* unPunto, unsigned int unRadio, bool vivo);

        virtual public void vivir() = 0;
		bool estaVivo();
        bool colisioneCon(ObjetoVivo* otroObjetoVivo);
        virtual void colisionarConPacman(ObjetoVivo* unObjetoVivo) = 0;
        virtual void colisionarConFantasma(ObjetoVivo* unObjetoVivo) = 0;
		Punto* getPosicion();
		Punto* getPosicionAnterior();
		unsigned int getRadio();
        void setPosicion(Punto* unPunto);
		void setPosicion(Punto* unPunto, bool pisarAnterior);
        void setRadio(unsigned int unRadio);
		bool equals(ObjetoVivo *otroObjetoVivo);
		int getId();
        void matar();
        void revivir();
		~ObjetoVivo();
    };

#endif